/**
 * Created with CLion.
 * Description: 
 * User: cyber
 * Date: 2020-10-16
 * Time: 8:45
 */
#ifndef DATASTRUCTSTUDY_LINKEDLISTNODE_H
#define DATASTRUCTSTUDY_LINKEDLISTNODE_H

#include "base.h"

class LinkedListNode
{
public:
    LinkedListNode();

    virtual ~LinkedListNode();

    /*[] 创建链表 */
    Node *CreateNode(const std::string &_data = "", int _length = 0);

    /*[] 尾部追加节点 */
    void Append(Node *_node);

    void Append(LinkedListNode &_listNode);

    /*[] 结点插入 ,默认插入到头部(pos = 0)*/
    void Insert(Node *_node, int _pos = 0);

    void Delete(const string &_node_data);

    /*[] 查找结点 */
    Node *Find(const string &_node_data);

    Node *Find(int _pos);

    /*[] 尾节点 */
    Node *Last();

    /*[] 头节点 */
    Node *Head();

    /*[] 是否为空 */
    bool IsEmpty();

    /*[] 长度 */
    int Length();

private:
    Node *head_;
};


#endif //DATASTRUCTSTUDY_LINKEDLISTNODE_H
